package cii_lib;
import java.util.Vector;

import cii_lib.CCII_CONFIG_TABLE;


public class CII_Tree_Vectors extends Vector<String>{


	private static final long serialVersionUID = 1L;
	private Object Link;
	private CCII_CONFIG_TABLE cciiTable = null;
	
	@Override
	public synchronized String toString() {
		String zwroc =this.get(1);
		if (zwroc.equals("null")) {zwroc="End of structure";
		return zwroc;}
		zwroc=zwroc+" :"+this.get(8);
		return zwroc;
	}
	public synchronized int toInt(int in) {
		return new Integer(this.get(in));
	}
	public String Name() {
		return this.Clear(1)+"_"+this.get(8);
	}
	public String Clear(int val) {
		return this.get(val).substring(1, this.get(val).length()-1);
	}
	public boolean isString() {
		if (this.get(2).substring(18).equals("SPAR")) return true;
		else return false;
	}
	public boolean isInteger() {
		if (this.get(2).substring(18).equals("IPAR")) return true;
		else return false;
	}
	public boolean isHex() {
		if (this.get(2).substring(18).equals("HPAR")) return true;
		else return false;
	}
	public boolean isList() {
		if (this.get(2).substring(18).equals("MPAR")) return true;
		else return false;
	}
	public boolean isLogic() {
		if (this.get(2).substring(18).equals("LPAR")) return true;
		else return false;
	}
	public boolean isBits() {
		if (this.get(2).substring(18).equals("BITS")) return true;
		else return false;
	}
	public boolean isWord() {
		if (this.get(2).substring(18).equals("WORD")) return true;
		else return false;
	}
	public boolean isArea() {
		if (this.get(2).substring(18).equals("AREA")) return true;
		else return false;
	}
	public boolean isNomore() {
		if (this.get(3).equals("0") && this.get(4).equals("0")
				&& this.get(5).equals("0")) return true;
		else return false;
	}
	public boolean isParam() {
		if (this.isArea() || this.isWord() || this.isBits()) return false;
		else return true;
	}
	public void setLink(String name) {
		Link = new String(name);
	}
	public String getLink() {
		return (String)Link;
	}
	public Object Get_CII_Tree_Vectors() {
	 	return this;
	}
	public CCII_CONFIG_TABLE getCCII_CONFIG_TABLE() {
		if (cciiTable!=null) {
			return cciiTable;
		} else {
			return null; //TODO trzeba to dokonczyc
		}
	}
	public CII_Tree_Vectors() {super();}
	
	public CII_Tree_Vectors(CCII_CONFIG_TABLE ctab) {
		add(""+ctab.CompID);
		add(ctab.Name);
		add("CIIlib.TABLE_TYPE."+ctab.Type);
		add(""+ctab.Width);
		add(""+ctab.Number);
		add(""+ctab.Repeat);
		add("CIIlib.TABLE_ACCESS."+ctab.Access);
		add(""+ctab.Address);
		add(""+ctab.Position);
		add(""+ctab.ParIntVal);
		add(ctab.ParStrVal);
		cciiTable=ctab;
	}
}
